#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;

vector<int> div(vector<int> &A, int b, int &r){
    vector<int> C;
    for(int i = A.size() - 1; i >= 0; i --){
        r = A[i] + r * 10;
        C.push_back(r / b);   //被除数为上一轮余数*10后，加上本轮的数
        r %= b;   //余数为本轮数加上余数*10后的余数
    }

    //注意：此时容器中，最高位存储在0，是个相反的数，因此需要逆置
    reverse(C.begin(), C.end());
    //去除前导零
    while(C.size() > 1 && C.back() == 0) C.pop_back();
    return C;
}

int main(){
    string a;
    vector<int> A;
    int b;
    
    cin >> a >> b;

    for(int i = a.size() - 1; i >= 0; i -- ){
        A.push_back(a[i] - '0');
    }

    int r = 0; //余数
    auto C = div(A, b, r);

    for(int i = C.size() - 1; i >= 0; i -- ){
        printf("%d", C[i]);
    }
    cout << endl << r << endl;

    return 0;
}